package com.bitejiuyeke.biteadminservice.house.service;

import com.bitejiuyeke.biteadminapi.house.domain.dto.SearchHouseListReqDTO;
import com.bitejiuyeke.biteadminservice.house.domain.dto.*;
import com.bitejiuyeke.bitecommoncore.domain.dto.BasePageDTO;

import java.util.List;

public interface IHouseService {
    /**
     * 添加或编辑房源
     *
     * @param houseAddOrEditReqDTO
     * @return
     */
    Long addOrEdit(HouseAddOrEditReqDTO houseAddOrEditReqDTO);

    /**
     * 更新房源缓存
     *
     * @param houseId
     */
    void cacheHouse(Long houseId);

    /**
     * 获取房源详情
     *
     * @param houseId
     * @return
     */
    HouseDTO detail(Long houseId);

    /**
     * 搜索房源列表
     *
     * @param houseListReqDTO
     * @return
     */
    BasePageDTO<HouseDescDTO> list(HouseListReqDTO houseListReqDTO);

    /**
     * 编辑房源状态
     *
     * @param houseStatusEditReqDTO
     */
    void editStatus(HouseStatusEditReqDTO houseStatusEditReqDTO);

    /**
     * 获取房东id查询其下房源id列表
     *
     * @param userId
     * @return
     */
    List<Long> listByUserId(Long userId);

    /**
     * 房源缓存
     */
    void refreshHouseIds();

    /**
     * 搜索房源列表
     *
     * @param searchHouseListReqDTO
     * @return
     */
    BasePageDTO<HouseDTO> searchList(SearchHouseListReqDTO searchHouseListReqDTO);
}
